java语言中&&与& ||与|有什么区别

来源:百度知道 编辑:UC知道 时间:2024/06/17 05:29:18
谢谢!!

&& 逻辑运算and,当两个条件都为真的时候才为真。

||逻辑运算or,只要有一个条件为真就为真。

而& 和 | 属于位运算。

逻辑运算与位运算最大的区别在于

逻辑运算支持短路运算,

而位运算不支持短路运算。

短路运算就是 位运算if(条件1 & 条件2){}
当第一个条件不满足的时候还会判断条件2,

但是逻辑运算if(条件1 &&条件2){}
当第一个条件不满足的时候不会判断条件2.

逻辑|| 跟位运算| 同上。

我能说的也就这么多 - -

我服了,没经过测试就到这里来忽悠人,还有下面那个,竟然说他们说得很对...害我又测试一遍,
在java中和c不同,java中&&和||已经是短路操作了,测试
String str = null;
System.out.println(true||str.equals(""));
明显没问题,如果没短路,肯定会出现NullPointerException
再测试
String str = null;
System.out.println(true|str.equals(""));
控制台马上就出现了异常.....
String str = null;
System.out.println(false&&str.equals(""))
不会出现异常
看到了啥时候是短路,啥时候不是短路了吧

a&&b 当a为真时会去检查b是否为真当两个同时为真是返回真,当a为假时不去检查b

& 或者 | 操作整数的时候请参考http://hi.baidu